package com.york.tinyrpc.protoss.fault.tolerant;

import com.york.tinyrpc.protoss.model.TinyRpcResponse;

import java.util.Map;
import java.util.concurrent.Callable;


/**
 * 容错策略
 */
public interface TolerantStrategy {

    /**
     * 执行容错策略
     *
     * @param context 上下文内容，根据需要获取
     * @param e       异常信息，主要根据异常信息处理不同
     * @return response，容错执行结果
     */
    TinyRpcResponse doTolerant(Map<String, Object> context, Exception e);
}
